CloudWatch AlarmですでにALARM状態のアラームでアラームを手動発生させる
こんにちは、CX事業本部 IoT事業部の若槻です。
今回は、Amazon CloudWatch AlarmですでにALARM状態のアラームでアラームを手動発生させる方法を確認してみました。
アラームを手動発生させてみる
OK状態のアラームの場合
CloudWatchメトリクスに設定したアラームのアクションが、期待通りに動作するかどうかテストをしたい場合があります。
その時点でアラームがOK状態である場合は、以下のエントリで紹介されている方法でアラームの手動発生が可能です。
実際に試してみます。
OK状態のアラームtestAlarm2
を対象とします。
set-alarm-state
コマンドを実行します。--state-value
でALARM
を指定することにより手動でALARM状態にさせます。
$ aws cloudwatch set-alarm-state \ --alarm-name testAlarm2 \ --state-value ALARM \ --state-reason "test"
ALARM状態となりました。
履歴にも記録されています。
アクションによるメール通知も届きました。
ALARM状態のアラームの場合
では下記のようにテストをしたいアラームがすでにALARM状態である場合はどうすれば良いでしょうか。
方法としては、OK状態に変更した後にすぐにALARM状態に変更するです。
set-alarm-state
コマンドを2回連続で実行します。1回目の実行では--state-value
をOK
とし、2回目の実行ではALARM
とします。
$ aws cloudwatch set-alarm-state \ --alarm-name testAlarm \ --state-value OK \ --state-reason "test" $ aws cloudwatch set-alarm-state \ --alarm-name testAlarm \ --state-value ALARM \ --state-reason "test"
アラームの状態がALARM->OK->ALARMと変更できています。
アクションによるメール通知も届きました。
OK、ALARMいずれの状態でもアラームを発生させる
ちなみに後者のALARM状態のアラームの場合の2回変更コマンドを実行する方法は、OK、ALARMいずれの状態でも使用可能です。
なのでアラームのテストをスクリプトなどで自動化したい場合は、その時点でのアラームの状態によらず、OK状態にするコマンドとALARM状態にするコマンドを実行すれば、アラーム状態チェック処理を設けなくてもアラームを発動させられます。
おわりに
Amazon CloudWatch AlarmですでにALARM状態のアラームでアラームを手動発生させる方法を確認してみました。
最近アラームのテストをJestで実装する機会があり、アラームの状態がOKとALARMのいずれでもアラームを発生させる方法を考える必要があったのですが、解決できて良かったです。
参考
以上